home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 3 / ct-rom iiib.zip / ct-rom iiib / CTSELECT / QEDIT / QEDIT3.ZIP / MACROS.TXT < prev    next >
Text File  |  1994-02-25  |  13KB  |  392 lines

  1. *
  2. * File: MACROS.TXT  --  Miscellaneous useful macros for use with QEdit
  3. *
  4. * Last revised: 4-November-1993
  5. *
  6. * To use these macros, select the ones you like, copy them to your keyboard
  7. * configuration file (QCONFIG.DAT), (editing the key assignment if need be)
  8. * and then run the configuration program (QCONFIG) to install the new key
  9. * assignments into your copy of QEdit.
  10. *
  11. * Most of these macros assume you are using QEdit 3.0 or greater.
  12. * (Or the equivalent QEdit TSR 3.0 or QEdit for OS/2 3.0 or greater).
  13. *
  14.  
  15. *
  16. *  Title: Fancy home macro.
  17. *
  18. *  If already at the start of a line, go to the first non-white character
  19. *  on the line; otherwise, if not already at the start of a line, go to the
  20. *  start of the line.
  21. *
  22. Home        BegLine MacroQuitTrue FirstNonWhite
  23.  
  24. *
  25. *  Title: Block Cut with blank fill
  26. *
  27. *  This does the same thing as Cut <Grey ->, but it fills the original block
  28. *  with spaces.  This is most useful with column blocks, when you don't want
  29. *  the text "around" the block to "fill in" where the removed text was. The
  30. *  macro assumes a block is already marked.  The block will be [Cut] to the
  31. *  clipboard or system scrap buffer. You can then insert the block where you
  32. *  like by pressing the [Paste] key <Grey *>.
  33. *
  34. *  Note: the block must be closed before this macro will work.
  35. *
  36. f10         GotoBlockBeg MacroQuitFalse
  37.             Cut Paste
  38.             FillBlock ' ' Return
  39.             UnmarkBlock
  40.  
  41. *
  42. * Title: Find with Options prompt removed.
  43. *
  44. * The first one forces a forward case-insensitive search, the second backward.
  45. *
  46. f7          Find Pause Return 'i' Return
  47.  
  48. #f7         Find Pause Return 'ib' Return
  49.  
  50. *
  51. * Title: Find next occurrence of the Word sitting at the cursor position
  52. * Note: if cursor is not in a word, we check left and right for a word,
  53. * if we still can't find a word, we quit.
  54. *
  55. @=          MarkWord MacroQuitFalse Copy
  56.             Find Paste Return Return
  57. *
  58. * Title: Find Word at cursor backwards
  59. *
  60. ^f1         MarkWord MacroQuitFalse Copy
  61.             Find Paste Return "ib" Return
  62.  
  63. *
  64. * Title: "Safer" WriteBlock
  65. *
  66. * All the file prompts come up with a default of the last file loaded.
  67. * However, when using WriteBlock, accepting the default could overwrite
  68. * a file you have in the editor.  Here's a macro to replace <Alt W> that
  69. * makes sure the prompt comes up blank, and that the Overwrite/Append always
  70. * comes up defaulted to Append no matter what.
  71. *
  72. @w          WriteBlock DelLine Pause Return
  73.             Jump done:
  74.             EndLine
  75.             done:
  76.  
  77. *
  78. * Title: Delete to beginning of line
  79. *
  80. ^backspace  SplitLine DelLine BegLine
  81.  
  82. *
  83. * Title: Duplicate "n" Lines
  84. *
  85. * The built in DupLine function duplicates the current line, and moves the
  86. * cursor down onto the duplicate.  This macro does the same thing for X lines
  87. * starting from the cursor line going "UP".  It will stop and prompt for the
  88. * number of lines.  Press ESCAPE twice at the prompt to abort.
  89. *
  90. @d          UnmarkBlock MarkLine AddLine 2 CursorUp
  91.             RepeatCmd Pause Return
  92.             MarkLine GotoBlockEnd CopyBlock GotoBlockEnd
  93.             CursorDown DelLine 2 CursorUp
  94. *
  95. * If "Insert line blocks ABOVE cursor line?" is set to YES, use this instead:
  96. *
  97. *@d         UnmarkBlock MarkLine AddLine 2 CursorUp
  98.             RepeatCmd Pause Return
  99.             MarkLine GotoBlockEnd CursorDown CopyBlock GotoBlockEnd
  100.             CursorDown DelLine 2 CursorUp
  101.  
  102. *
  103. * Title: Alternate Help File
  104. *
  105. * This allows you to have a help file much larger than one screen, by loading
  106. * it into QEdit into an editing buffer.
  107. *
  108. * Change the directory & filename here to the help or doc file that you use.
  109. *
  110. f1          EditFile 'c:\qedit\help.dat' Return
  111.  
  112. *
  113. * Title: Load a file whose name is at the cursor
  114. *
  115. * This picks up a filename that is sitting at the cursor position in the
  116. * editor, and loads it into another buffer.
  117. *
  118. ^]          AltWordSet MarkWord jFalse done: Copy
  119.             EditFile Paste Return
  120.     done:   DefaultWordSet
  121.  
  122. *
  123. * Title: Alternate WrapPara
  124. *
  125. * WrapPara assumes you have moved the cursor to the top of the paragraph
  126. * you wish to wrap.  This macro removes this requirement by moving the
  127. * cursor there for you.  This macro will re-wrap the current paragraph, no
  128. * matter where the cursor is currently sitting in it.
  129. *
  130. @b          CursorDown PrevPara WrapPara NextPara
  131.  
  132. *
  133. * Title: Wrap entire file
  134. *
  135. * WrapPara only affects the current paragraph.  This macro repeats WrapPara
  136. * from the cursor position to the end of the file, reformatting the entire
  137. * file.  NOTE:  all paragraphs will be reformatted to the same margins, so
  138. * be sure this is what you want.
  139. *
  140. ^f6         EndFile
  141.             AddLine
  142.             BegFile
  143.             BegLine
  144.      again: WrapPara    JTrue again:
  145.             EndFile
  146.             DelLine
  147.             CursorUp
  148.  
  149. *
  150. * Title: Absolutely Quit the Editor
  151. *
  152. * This key, when hit, will absolutely discard all files from the editor,
  153. * and exit to the DOS prompt, no questions asked.
  154. *
  155. * !WARNING!: Be careful with this one-- it will NOT prompt you to save your
  156. *            work.   You will lose all your work if you haven't saved it!
  157. *
  158. ^f12 again: Quit        JTrue again:
  159.             Escape
  160.  
  161. *
  162. * Title: Delete redundant blank lines in entire file
  163. *
  164. * This macro deletes all blank lines that are adjacent to another blank line.
  165. * Useful for cleaning up files or screen captures that have too much excess
  166. * white space in them.
  167. *
  168. ^f11 fndnxt:
  169.             EndPara
  170.             CursorDown 2    JFalse end:
  171.      blank: EndLine
  172.             BegLine         JTrue fndnxt:
  173.             DelLine         JTrue blank:
  174.        end:
  175.  
  176. *
  177. * Title: Worry-free Sort
  178. *
  179. * Sort only works if there is a single, non-zoomed window on the screen.
  180. * Well, rather than worry about that, how about have a macro take care of it:
  181. *
  182. #f3         GotoBlockBeg OneWindow Sort
  183.  
  184. *
  185. * Title: Reload Current file
  186. *
  187. * QEdit normally never reloads a file from disk once in memory.  But
  188. * sometimes the copy on disk might change while you are inside QEdit, and you
  189. * may want to see the new copy.  (This could happen on a network, or if you
  190. * run a utility that can modify files, from inside QEdit using "Dos").
  191. *
  192. * Hit this key, and no matter the state of the editing buffer, the
  193. * original copy of this file will be reloaded into the editor.  This
  194. * will LOSE any and all changes you haven't saved, so BE CAREFUL!
  195. *
  196. ^f2         SplitLine
  197.             EditFile CurrentFilename Return
  198.             NewFile "N" Return
  199.  
  200. *  Here's a safer version:  this one stops to let you answer the
  201. *  "Save Changes?" prompt.  You will have to hit RETURN to confirm the
  202. *  reload of the file.
  203. *
  204. ^f3         EditFile
  205.             CurrentFilename Return
  206.             NewFile
  207.  
  208. *
  209. * Title: An Editing Log macro
  210. *
  211. * This macro allows you to keep a "log" of the files you have edited with
  212. * QEdit.  This could be useful to keep track of large multi-file projects.
  213. *
  214. * It keeps the log in the file C:\Q.LOG.  When you are "done" with a file,
  215. * hit this key and it will be saved to disk, and the time and date recorded
  216. * in the LOG file.
  217. *
  218. ^f5         HorizontalWindow
  219.             EditFile "C:\Q.LOG" Return
  220.             EndFile AddLine BegLine
  221.             InsertDate InsertTime " @" BegLine
  222.             PrevWindow
  223.             FindReplace "@" Return CurrentFilename Return Escape
  224.             NextWindow
  225.             FindReplace Return Return "N" Return
  226.             SaveFile
  227.             CloseWindow
  228.             File
  229.  
  230. *
  231. * Title: Run a Compiler Macro
  232. *
  233. * As written here, this macro will run the Turbo Pascal compiler (TPC) on the
  234. * current file, and bring the resulting error messages into a window below
  235. * the current one.  Edit where it says "TPC /Q >ERRS.LST " to invoke whichever
  236. * language compiler you most often use.
  237. *
  238. @f9         OneWindow UnmarkBlock DropAnchor
  239.             EditFile 'ERRS.LST' Return
  240.             KillFile Quit
  241.             GotoBlockBeg UnmarkBlock
  242.             Dos 'TPC /Q >ERRS.LST ' CurrentFilename Return Return
  243.             HorizontalWindow
  244.             EditFile Return
  245.             PrevWindow
  246.  
  247. * Title: Delete all blank lines in a marked block
  248. *
  249. * The cursor should be at the beginning of the block when the macro is
  250. * invoked.
  251. *
  252. #f9         SetScreenOff                    * turn off screen for speed
  253.     begin:  isCursorInBlock                 *
  254.             MacroQuitFalse                  * exit if not in block
  255.             isEmptyLine     jFalse next:    * skip if not empty line
  256.             isLastLine      jTrue  last:    * special handling for last line
  257.             DelLine         jump  begin:    * delete empty lines
  258.     next:   CursorDown      jTrue begin:    * try next line
  259.             MacroQuit                       * that's all, folks!
  260.     last:   DelLine                         * delete the last line
  261.  
  262. *
  263. * Title: WordStar-like cursor left/right
  264. *
  265. * Left and Right cursor definitions that wrap to previous/next line
  266. * like WordStar does
  267. *
  268. cursorleft  CursorLeft                       * try to go left
  269.             MacroQuitTrue                    * succeed!  then we are done
  270.             CursorUp                         * else try to go to prev line
  271.             MacroQuitFalse                   * if fail, then at top of file. done
  272.             EndLine                          * jump to end of previous line.
  273.  
  274. cursorright isEndLine       jTrue Down:      * are we at end of line? Go down
  275.             CursorRight                      * else right one
  276.             MacroQuit                        * Quit macro
  277.       Down: CursorDown                       * try to go to next line
  278.             MacroQuitFalse                   * if not goto end
  279.             BegLine                          * else goto beginning of line
  280.  
  281. *
  282. * Title: repeat GetPrev down
  283. *
  284. * A very useful QEdit command, GetPrev, copies a character from the line
  285. * immediately above the cursor line, onto the cursor line.  Often it is
  286. * necessary to copy this character to several succeeding lines in the
  287. * same column.  The GetPrev command, used in a macro, makes this
  288. * function easy.  Assign this macro to the <Alt 4> key (for example) in
  289. * QCONFIG.DAT as follows:
  290. *
  291. @4          GetPrev CursorLeft CursorDown
  292.  
  293. *
  294. * Title: enhanced AddLine/DelLine
  295. *
  296. * QEdit's AddLine and DelLine commands do not change the cursor
  297. * position.  Many would prefer that the cursor move to column one when
  298. * these commands are executed.  A solution is to change the QCONFIG.DAT
  299. * file as follows:
  300. *
  301. * Default QCONFIG.DAT file:
  302. *
  303. * f2    AddLine
  304. * ^y    DelLine
  305. *
  306. * Customized QCONFIG.DAT file:
  307. *
  308. f2          AddLine BegLine
  309.  
  310. ^y          DelLine BegLine
  311.  
  312. *
  313. * Title: Enhanced Copy/Move block
  314. *
  315. * QEdit's CopyBlock and MoveBlock commands leave the copied or moved
  316. * Block marked.  Many would prefer the Block to be unmarked.  A solution
  317. * is to change the QCONFIG.DAT file as follows:
  318. *
  319. * Default QCONFIG.DAT file:
  320. *
  321. * @c    CopyBlock
  322. * @m    MoveBlock
  323. *
  324. * Customized QCONFIG.DAT file:
  325. *
  326. @c          CopyBlock UnmarkBlock
  327.  
  328. @m          MoveBlock UnmarkBlock
  329.  
  330. * Title: Alternate DropAnchor
  331. *
  332. * QEdit's DropAnchor command ends or extends a Block if executed after a
  333. * Block has been initially or entirely marked.  Some editors have a
  334. * similar command, except that it acts as a toggle.  That is, if you are
  335. * already marking a Block, and you press DropAnchor again, the Block is
  336. * unmarked and marking begins again at the current cursor position.  To
  337. * implement this behavior, change the QCONFIG.DAT file as follows:
  338. *
  339. * Default QCONFIG.DAT file:
  340. *
  341. * @a    DropAnchor
  342. *
  343. * Customized QCONFIG.DAT file:
  344. *
  345. @a          UnmarkBlock DropAnchor
  346.  
  347.  
  348. * Title: Load sorted list of files in the current directory.
  349. *
  350. * This macro allows you to edit a sorted list of files of the current
  351. * directory.  Assign this macro to the <Alt 5> key (for example) in
  352. * QCONFIG.DAT as follows:
  353. *
  354. @5          Dos "dir *.* | sort>filedir.tmp" Return Return
  355.             EditFile "filedir.tmp" Return
  356.             DelLine 4
  357.  
  358. *
  359. * Title: Transpose character
  360. *
  361. * macro to "twiddle" the character at the cursor, and the one to the right
  362. * of the cursor
  363. *
  364. @f10        UnMarkBlock DropAnchor
  365.             StoreScrBuff "%%%" return
  366.             DelCh CursorRight
  367.             GetScrBuff "%%%" return
  368.             UnMarkBlock CursorLeft
  369.  
  370. *
  371. * Title: PE2 like joinline
  372. *
  373. * Macro to make QEdit's joinline act line PE's joinline, e.g., force
  374. * QEdit's joinline to always concatenate the next line to the end of the
  375. * current line, regardless of the current cursor position.
  376. * Notes:  Requires QEdit 2.1.
  377. * Must be on one line if processed by qconfig.exe.
  378. * Works better if "removing trailing spaces=yes" (our default) in qconfig.exe
  379. *
  380. @j          isLastLine       * force blank removal, and check for eof
  381.             MacroQuitTrue    * if at eof, we can get out now
  382.             CursorRight      * force some movement that we can easily undo
  383.             EndLine          *
  384.             JoinLine         * concatenate the lines
  385.             PrevPosition     * back to where we were before the endline
  386.             CursorLeft       * and undo the cursorright
  387.  
  388. *
  389. * Title: Copy line above to EOL
  390. *
  391. @f1   top:  GetPrev     JTrue top:
  392.